import java.util.Scanner;
import java.util.*;

class Main1{

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        String s1, s2;
        //先检查@的数量
        int cnt1 = 0, p = 0;

        for (int i = 0; i < s.length(); ++i) {
            if(s.charAt(i) == '@') {
                cnt1++;
                p = i;
            }
        }
        // @的数量要是 大于1或者是为0的话
        // 又因为 @ 前面和后面又要都有 因此
        if(cnt1 > 1 || cnt1 == 0 || s.charAt(s.length() - 1) == '@' || s.charAt(0) == '@') { // 最后是@ 可能也会出错
            System.out.println("NO");
            System.exit(0);
        }
        if(p + 1 < s.length()) {
            if(s.charAt(p + 1) == '/') {
                System.out.println("NO");
                System.exit(0);
            }
        }



        s1 = s.split("@")[0];
        if(s1.length() < 1 || s1.length() > 16) {
            System.out.println("NO");
            System.exit(0);
        }
        // 先检查的是UserName字段
        if(!checkUserName(s1)) {
            System.out.println("NO");
            System.exit(0);
        }
        s2 = s.split("@")[1];
        if(s2.charAt(0) == '/') {
            System.out.println("NO");
            System.exit(0);
        }
        if(!s2.contains("/")) { // 表示没找到 直接检查s2
           if(!checkHostName(s2)) {
               System.out.println("NO");
               System.exit(0);
           }
        } else { // 包含 /
            if(s2.charAt(s2.length() - 1) == '/') {
                System.out.println("NO");
                System.exit(0);
            } else {
                int cnt2 = 0;
                for(int i = 0; i < s2.length(); ++ i ) {
                    if(s2.charAt(i) == '/')cnt2++;
                }
                if(cnt2 > 1) {
                    System.out.println("NO");
                    System.exit(0);
                }
                // 开始分割
                String[] t1 = s2.split("/");
                String t2 = t1[t1.length - 1];
                if(!checkUserName(t2)) {
                    System.out.println("NO");
                    System.exit(0);
                }
            }
        }
        // 到了最后 再说Yes
        System.out.println("YES");
    }

    public static boolean checkUserName(String s) { // 检查username字段
        int len = s.length();
        for(int i = 0; i < s.length(); ++ i ) {
            char t = s.charAt(i);
            boolean flag = false;
            if((t >= 'a' && t <= 'z') || (t >= 'A' && t <= 'Z') || ( t >= '0' && t <= '9') || t == '_' ) {
                flag = true;
            }
            if(!flag) {
                return false;
            }
        }
        return true;
    }

    public static boolean checkHostName(String s) {
        int len = s.length();
        if(len < 1 || len > 32) {
            return false;
        }
        // 看看是不是有两个 . 连在一起的
        for (int i = 0; i < s.length() - 1; ++ i ) {
            // 不允许两个 . 连在一起
            if(s.charAt(i) == '.' && s.charAt(i + 1) == '.') {
                System.out.println("!!!!!!!!");
                return false;
            }
        }
        // 不能以 . 开头或者是结束
        if(s.charAt(0) == '.' || s.charAt(len - 1) == '.') {
            return false;
        }
        String[] t = s.split(".");
        for(int i = 0; i < t.length; ++ i ) {
            int tl = t[i].length();

            if(!checkUserName(t[i]) || tl > 16 || tl < 1) {
                return false;
            }
        }
        return true;
    }
}